import { request, wxLogin, getUserInfo } from "../../utils/request";

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    //定义模态框是否显示的属性
    show: {
      type: Boolean,
      value: true
    },
    //定义是否完成登录
    isLogin: {
      type: Boolean,
      value: false,
      observer(newVal, oldVal) {
        // 属性值变化时触发自定义事件
        this.triggerEvent("loginChange", { newVal });
      }
    }
  },

  /**
   * 组件的初始数据
   */
  data: {

  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * 处理登录框取消按钮事件
     */
    handlerCancel() {
      this.setData({
        show: false
      })
    },
    /**
     * 处理登录事件
     */
    async handlerLogin() {
      //获取用户code和获取用户信息
      Promise.all([wxLogin(), getUserInfo()]).then(res => {
        const userLoginParam = {
          code: res[0].code,
          nickName: res[1].userInfo.nickName,
          avatarUrl: res[1].userInfo.avatarUrl
        }
        //发起登录
        request({ url: "/wx/user/login", method: "POST", data: userLoginParam }).then(loginRes => {
          const result = loginRes.data
          if (result.state === 0) {
            wx.setStorageSync("user", result.data)
            this.setData({
              show: false,
              isLogin: true
            })
          } else {
            wx.showToast({
              title: result.message,
              icon: "none",
              duration: 2000
            })
          }
        })
      })
    }
  }
})
